﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using mepostras.BLL;
namespace mepostras.BO
{
    public interface IHospital
    {
        /// <summary>
        /// Render từ Id thành chuỗi để lưu LocalId. 
        /// Ex: 1 => HOS00001
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        string RenderLocalId(int id);

        /// <summary>
        /// cập nhật Hospital
        /// </summary>
        /// <param name="hospital"></param>
        /// <param name="images"></param>
        /// <param name="messageCode"></param>
        /// <returns></returns>
        bool Update(Hospital hospital, TList<File> images, out string messageCode);

        /// <summary>
        /// Tạo mới Hospital
        /// </summary>
        /// <param name="hospital"></param>
        /// <param name="images"></param>
        /// <param name="messageCode"></param>
        /// <returns></returns>
        bool Insert(Hospital hospital, TList<File> images, out string messageCode);

        /// <summary>
        /// Xóa Hospital
        /// </summary>
        /// <param name="id"></param>
        /// <param name="messageCode"></param>
        /// <returns></returns>
        bool Delete(int id, out string messageCode);

        /// <summary>
        /// Lấy danh sách bệnh viện có phân trang
        /// </summary>
        /// <param name="language">Ngôn ngữ</param>
        /// <param name="page">Thứ tự trang. Trang bắt đầu là 1. Nếu trang là null thì là 1</param>
        /// <param name="isMore">Còn trang tiếp theo không</param>
        /// <returns></returns>
        TList<Hospital> GetHospitals(string language, ref int? page, out bool isMore);

        /// <summary>
        /// Lấy bệnh viện theo alias
        /// </summary>
        /// <param name="alias"></param>
        /// <param name="language"></param>
        /// <returns></returns>
        Hospital Get(string alias, string language);

        /// <summary>
        /// Lấy bệnh viện theo alias
        /// </summary>
        /// <param name="alias"></param>
        /// <returns></returns>
        Hospital Get(string alias);

        /// <summary>
        /// Lấy bệnh viện theo id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Hospital Get(int id);

        /// <summary>
        /// Lấy tất cả bệnh viện
        /// </summary>
        /// <returns></returns>
        TList<Hospital> GetAll();

    }
}
